package Logica.Objeto.Destructible;

import Logica.Objeto.Objeto;
import Logica.Premio.Premio;

public abstract class Destructible extends Objeto {
	protected int indiceDestruccion;
	protected boolean hayPremio;
	protected Premio premio;
	
	/**
	 * Crea una nueva instancia de destructible.
	 *
	 * @param indice de destruccion (cuantas veces deben dispararle para que se rompa)
	 * @param pre premio que contiene el objeto
	 */
	public Destructible(int indice, Premio pre){
		indiceDestruccion=indice;
		premio=pre;
		hayPremio=true;
	}
	
	/**
	 * Crea una nueva instancia de destructible.
	 *
	 * @param indice de destruccion (cuantas veces deben dispararle para que se rompa)
	 */
	public Destructible(int indice){
		indiceDestruccion=indice;
		premio=null;
		hayPremio=false;
	}

	/**
	 * Disminuir indice destruccion.
	 */
	public void disminuirIndiceDestruccion() {
		indiceDestruccion--;
	}

	/**
	 * Obtener indice destruccion.
	 *
	 * @return int
	 */
	public int obtenerIndiceDestruccion() {
		return ( indiceDestruccion );
	}

	/**
	 * Obtener premio.
	 *
	 * @return premio
	 */
	public Premio obtenerPremio() {
		return ( premio );
	}

	/**
	 * Hay premio.
	 *
	 * @return verdadero si Hay premio, falso en caso contrario
	 */
	public boolean hayPremio() {
		return ( hayPremio ); 
	}
}
